//
//  TiledView.m
//  TiledView
//
//  Created by Kishikawa Katsumi on 10/03/22.
//  Copyright 2010 Kishikawa Katsumi. All rights reserved.
//

#import "TiledView.h"

@implementation TiledView

+ (Class)layerClass {  
    return [CATiledLayer class];  
}

- (CATiledLayer *)tiledLayer {  
    return (CATiledLayer *)self.layer;
}

- (void)drawRect:(CGRect)rect {
    // 現在のグラフィックスコンテキストを取得する
	CGContextRef context = UIGraphicsGetCurrentContext();
    // グラフィックスコンテキストからアフィン変換行列を取得する
    CGAffineTransform transform = CGContextGetCTM(context);
	
    // 表示領域の左端の x 座標を求める
    int xmin = CGRectGetMinX(rect);
    // 表示領域の上端の y 座標を求める
    int ymin = CGRectGetMinY(rect);
    // 表示領域の右端の x 座標を求める 
    int xmax = CGRectGetMaxX(rect);
    // 表示領域の下端の y 座標を求める
    int ymax = CGRectGetMaxY(rect); 
    // 左端の x 座標を表示領域の幅で割り、ヨコの何分割目かをもとめる 
    int x = xmin / CGRectGetWidth(rect);
    // 上端の y 座標を表示領域の高さで割り、タテの何分割目かをもとめる
    int y = ymin / CGRectGetHeight(rect);  
	
    // transform.a は拡大率
	NSLog(@"%@", 
          [NSString stringWithFormat:@"%gx [%d,%d] (%d,%d)-(%d,%d)", transform.a, x, y, xmin, ymin, xmax, ymax]);
	
    // 表示領域に合う画像を読み込む
	NSString *fileName = [NSString stringWithFormat:@"image-%02d-%02d.jpg", x + 1, y + 1];
	UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]];
    
    // 描画
	[image drawInRect:rect];
}

- (void)layoutSubviews {
    if ([self respondsToSelector:@selector(contentScaleFactor)]) {
        self.contentScaleFactor = 1.0f;
    }
}

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
    return NO;  
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {  
    return self;  
}

- (void)dealloc {
    [super dealloc];
}

@end
